package mx.ipn.presentacion.facturacion;

import mx.ipn.presentacion.ConexionConNegocios;
import mx.ipn.presentacion.facturacion.ui.*;
import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.gui.QMessageBox;
import com.trolltech.qt.gui.QWidget;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QTableWidgetItem;
import mx.ipn.to.*;
public class Prefactura extends QDialog {
	Ui_VPrefactura vpre;
	ClienteTO[] clientes;
	ClienteTO[] cliente;
	BitacoraSTO[] servicios;
	ClienteRfcTO clienteRfcTO;
	RfcTO rfcTO;
	DetallePrefacturaTO prefactura;
	int idcliente=0;
	int idoperacion=0;
	int idcrfc=0;
	public static QTableWidgetItem itemservicio=null;
	public static QTableWidgetItem itemconcepto=null;
	public static QTableWidgetItem itemcosto=null;
	QTableWidgetItem newItem=null;
	String rfc="";
	public static void main(String[] args) {
		QApplication.initialize(args);
		Prefactura p = new Prefactura("tme840315kt6");
		QApplication.exec();
	}
	public Prefactura(String rfc){
		vpre = new Ui_VPrefactura();
		vpre.setupUi(this);
		vpre.tableWidgetResultado.itemClicked.connect(this,"selectCliente()");
		vpre.tableWidget.itemClicked.connect(this,"selectServicio()");
		vpre.pushButton.clicked.connect(this,"verServicios()");
		vpre.buttonBox.accepted.connect(this,"nuevaPrefactura()");
		//ConexionConNegocios.inicializar();
		vpre.buttonBox.rejected.connect(this, "reject()");
		this.rfc=rfc;
		this.show();
		buscaCliente();
	}

	public Prefactura(QWidget parent){
		
	}
	public void reject(){
		this.close();
	}
	public void selectCliente(){
		QTableWidgetItem newItem=null;
		int fila = vpre.tableWidgetResultado.currentRow();
		newItem = vpre.tableWidgetResultado.item(fila,0);
		idcliente= Integer.parseInt(newItem.text());
	}
	public void selectServicio(){
		QTableWidgetItem newItem=null;
		int fila = vpre.tableWidget.currentRow();
		itemservicio = vpre.tableWidget.item(fila,0);
		itemconcepto = vpre.tableWidget.item(fila,10);
		itemcosto = vpre.tableWidget.item(fila,4);
		idoperacion= Integer.parseInt(itemservicio.text());
		vpre.lineEdit_2.setText(String.valueOf(idoperacion));
	}
	public void verServicios(){
		/*
		 * numero
		 * tipo
		 * fecha
		 * hora
		 * tiempo
		 * status
		 * cliente
		 * telefono
		 * direccion
		 * factura
		 * observaciones
		 * */
		servicios = (BitacoraSTO[]) ConexionConNegocios.invocaServicio("verServicios",BitacoraSTO[].class);
		if(servicios!=null&&idcliente!=0){
			vpre.tableWidget.clearContents();
			 System.out.println("servicios"+ servicios.length);
	        vpre.tableWidget.setRowCount(servicios.length);
	        for(int i=0;i<servicios.length;i++)
	        	vpre.tableWidget.insertRow(i);
	        for(int j=0;j<servicios.length;j++){
	        	if(servicios[j].getIdCliente()==idcliente){	        	 
	        	newItem = new QTableWidgetItem(String.valueOf(servicios[j].getIdOperacion()));
	    	    vpre.tableWidget.setItem(j,0,newItem);
	    	    newItem = new QTableWidgetItem(servicios[j].getIdTipoServicio());
	    	    vpre.tableWidget.setItem(j,1,newItem); 
	    	    newItem = new QTableWidgetItem(String.valueOf(servicios[j].getFechaCubierto()));
	    	    vpre.tableWidget.setItem(j,2,newItem); 
	    	    newItem = new QTableWidgetItem(String.valueOf(servicios[j].getHoraCubierto()));
	    	    vpre.tableWidget.setItem(j,3,newItem); 
	    	    newItem = new QTableWidgetItem(String.valueOf(servicios[j].getCostoEstimado()));
	    	    vpre.tableWidget.setItem(j,4,newItem); 
	    	    newItem = new QTableWidgetItem(servicios[j].getIdStatus());
	    	    vpre.tableWidget.setItem(j,5,newItem); 
	    	    newItem = new QTableWidgetItem(servicios[j].getIdCliente());
	    	    vpre.tableWidget.setItem(j,6,newItem); 
	    	    newItem = new QTableWidgetItem(servicios[j].getTelefono());
	    	    vpre.tableWidget.setItem(j,7,newItem); 
	    	    newItem = new QTableWidgetItem(servicios[j].getIdClienteDireccion());
	    	    vpre.tableWidget.setItem(j,8,newItem); 
	    	    newItem = new QTableWidgetItem(String.valueOf(servicios[j].getFactura()));
	    	    vpre.tableWidget.setItem(j,9,newItem); 
	    	    newItem = new QTableWidgetItem(servicios[j].getObservaciones());
	    	    vpre.tableWidget.setItem(j,10,newItem);
	    	    clienteRfcTO = (ClienteRfcTO)ConexionConNegocios.invocaServicio("selectClienteRfcActivoByIdCliente",idcliente,ClienteRfcTO.class);
	        	}
		    }
		}
	}
	public void buscaCliente()
	{
		/*******inicia servcios*********/

		UsuarioTO usuarioTO = new UsuarioTO();
		
		usuarioTO.setNombreUsuario("contra5");
		usuarioTO.setContrasenia("pass5");
		
		UsuarioTO resp = null;
		
		resp = (UsuarioTO) ConexionConNegocios.invocaServicio("login", usuarioTO, UsuarioTO.class);
		/***************************/
		System.out.println("acceso");
		clientes = (ClienteTO[]) ConexionConNegocios.invocaServicio("buscarClienteRfc",rfc,ClienteTO[].class);
		if(clientes!=null){
		//for(ClienteTO c : clientes)
		vpre.tableWidgetResultado.clear();
		vpre.lineEdit_2.clear();
        vpre.tableWidgetResultado.setRowCount(clientes.length);
        for(int i=0;i<clientes.length;i++)
        	vpre.tableWidgetResultado.insertRow(i);
        for(int j=0;j<clientes.length;j++){
        	newItem = new QTableWidgetItem(String.valueOf(clientes[j].getIdCliente()));
    	    vpre.tableWidgetResultado.setItem(j,0,newItem);
    	    newItem = new QTableWidgetItem(clientes[j].getNombre());
    	    vpre.tableWidgetResultado.setItem(j,1,newItem); 
    	    newItem = new QTableWidgetItem(clientes[j].getApellidoPaterno());
    	    vpre.tableWidgetResultado.setItem(j,2,newItem); 
    	    newItem = new QTableWidgetItem(clientes[j].getApellidoMaterno());
    	    vpre.tableWidgetResultado.setItem(j,3,newItem); 
    	    newItem = new QTableWidgetItem(clientes[j].getTelefono());
    	    vpre.tableWidgetResultado.setItem(j,4,newItem); 
	    }
		}
	}
	public void nuevaPrefactura()
	{
		
	}
}
